﻿using System;
using System.Collections.Generic;
using System.Text;
using ESRI.ArcGIS.Controls;
using SysCommon.Entity.Business;
using SysCommon.Entity.Map;
using SysCommon.Entity;

namespace TMSIM.Client.BizGIS.Interface
{
    public interface ILocateCarPosition
    {
        /// <summary>
        /// 传入地图主控件的实例，以及车辆图标路径，以便生成车辆临时图层及车辆图标，并
        /// 把该图层加载到当前地图上
        /// </summary>
        /// <param name="vMapControl"></param>
        /// <param name="mdbPath"></param>
        void Initial(AxMapControl vMapControl, string iconPath);
        /// <summary>
        /// 重置车辆信息图层的样式
        /// </summary>
        /// <param name="size">地图上显示的车辆图标的大小</param>
        void ResetMapLayerRender(int size);
        /// <summary>
        /// 在地图上添加或修改车辆显示位置
        /// </summary>
        /// <param name="ety"></param>
        /// <returns>图元ID</returns>
        int AddPoint(LatestGPS_Ety ety);
        /*
        /// <summary>
        /// 显示指定的车辆
        /// </summary>
        /// <param name="TAG">1：按车队进行显示；2：按辖区进行显示；3：按道路进行显示；4：显示单辆车</param>
        /// <param name="filter">过滤条件。按照车队进行查询的条件是车队的名称，按道路进行查询的条件是道路编码等，按辖区进行查询的条件是辖区编码</param>
        void DisplaySpecificCars(int TAG, string filter);
        */
        /// <summary>
        /// 监控指定的车辆集(调用完成后，会自动缩放到合适比例）
        /// </summary>
        /// <param name="etys">车辆信息实体数组</param>
        void StakeoutCars(LatestGPS_Ety[] etys);
        /// <summary>
        /// 监控指定的车辆集（没有缩放）
        /// </summary>
        /// <param name="etys">车辆信息实体数组</param>
        void StakeoutCarsWithoutZoom(LatestGPS_Ety[] etys);

        void StakeoutCarsWithoutZoom2(GPS_Ety[] etys);
        /// <summary>
        /// 检查指定车辆是否存在
        /// </summary>
        /// <param name="carplate">车牌号码</param>
        /// <returns></returns>
        bool IsCarExist(string carplate);
        /// <summary>
        /// 定位指定的车辆信息
        /// </summary>
        /// <param name="etys">车辆信息实体数组</param>
        void DisplaySpecificCars(LatestGPS_Ety[] etys);
        /// <summary>
        /// 搜索道路信息
        /// </summary>
        /// <param name="road_name">道路名称</param>
        /// <returns></returns>
        RoadQueryDisplay_Ety[] QuerySpecificRoads(string road_name);
        /// <summary>
        /// 定位指定的道路
        /// </summary>
        /// <param name="ety">道路搜索结果列表实体</param>
        void DisplaySpecificRoad(RoadQueryDisplay_Ety ety);
        /// <summary>
        /// 刷新图层
        /// </summary>
        void Refresh();
      
    }
}
